package com.slt.concurrency.mashibing2019.juc.c_002_synchronized.my;


/**
 * @Author: shalongteng
 * @Date: 2022-01-02 22:22
 */
public class CountPlusPlus implements Runnable {
    /**
     * 需要访问 共享变量
     */
    private volatile int count = 0;

    @Override
    public void run() {
        count++;
        System.out.println(Thread.currentThread().getName() + ": " + count);
    }

    public static void main(String[] args) {
        /**
         * CountPlusPlus countPlusPlus = new CountPlusPlus();
         * 必须放到for循环外边，这样才是同一个对象，对同一个对象加锁。
         */
        CountPlusPlus countPlusPlus = new CountPlusPlus();
        for (int i = 0; i < 10000; i++) {
            /**
             * 启动一万个线程，每个线程都是对countPlusPlus 操作
             */
            new Thread(countPlusPlus).start();
        }
    }
}
